package com.ruoyi.monitor.utils.Email;

import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.monitor.domain.SysMsg;
import com.ruoyi.monitor.utils.Common.impl.CommonSender;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component
public class MailCenter extends CommonSender {
    @Autowired
    private JavaMailSender mailSender;

    public SysMsg sendTo(SysUser user){

        SimpleMailMessage message = new SimpleMailMessage();
        // 发件人
        message.setFrom(Mail.LOCAL);
        // 收件人
        message.setTo(user.getEmail());
        // 邮件标题
        message.setSubject(Mail.HEAD);
        // 邮件内容
        message.setText("测试信息");
        // 抄送人
        message.setCc();
        System.out.println(mailSender);
        System.out.println(message);
        mailSender.send(message);
        SysMsg sysMsg = new SysMsg();
        sysMsg.setContent(Mail.HEAD+"测试信息");
        sysMsg.setTitle("测试信息");
        sysMsg.setType(Mail.TYPE_EMAIL);
        sysMsg.setRank(Mail.MODEL_TIPS);
        sysMsg.setUserId(user.getUserId());
        sysMsg.setDate(new Date());
        return sysMsg;


    }


    public void sendTo(SysUser user,String head,String Content,String to){

        SimpleMailMessage message = new SimpleMailMessage();
        // 发件人
        message.setFrom(Mail.LOCAL);
        // 收件人
        message.setTo(user.getEmail());
        // 邮件标题
        message.setSubject(head);
        // 邮件内容
        message.setText(Content);
        // 抄送人
        message.setCc(to);
        mailSender.send(message);

    }

    public void sendTo(SysUser[] users){

        SimpleMailMessage message = new SimpleMailMessage();
        // 发件人
        message.setFrom(Mail.LOCAL);
        // 收件人
        String mails = "";
        for (int i = 0; i < users.length; i++) {
            mails+=(users[i].getEmail());
            if (i<users.length-1){
                mails+=(";");
            }
        }

        message.setTo(mails.contains(";")?mails.split(";"):new String[]{mails});
        // 邮件标题
        message.setSubject("Java发送邮件第二弹");
        // 邮件内容
        message.setText("你好，这是一条用于测试Spring Boot邮件发送功能的邮件！哈哈哈~~~");
        // 抄送人
        message.setCc(Mail.LOCAL);
        mailSender.send(message);

    }

    public void sendTo(SysUser user,SysMsg msg){

        SimpleMailMessage message = new SimpleMailMessage();
        // 发件人
        message.setFrom(Mail.LOCAL);
        // 收件人
        message.setTo(user.getEmail());
        // 邮件标题
        message.setSubject(msg.getTitle());
        // 邮件内容
        message.setText(msg.getContent());
        // 抄送人
        message.setCc(Mail.LOCAL);

        mailSender.send(message);

    }

    public void sendTo(SysUser[] users,SysMsg msg){

        SimpleMailMessage message = new SimpleMailMessage();
        // 发件人
        message.setFrom(Mail.LOCAL);
        // 收件人
        String mails = "";
        for (int i = 0; i < users.length; i++) {
            mails+=(users[i].getEmail());
            if (i<users.length-1){
                mails+=(";");
            }
        }

        message.setTo(mails.contains(";")?mails.split(";"):new String[]{mails});
        // 邮件标题
        message.setSubject("Java发送邮件第二弹");
        // 邮件内容
        message.setText("你好，这是一条用于测试Spring Boot邮件发送功能的邮件！");
        // 抄送人
        message.setCc("3472150990@qq.com");
        mailSender.send(message);

    }

}
